<?php

class Doctrine_tools extends CI_Controller {

    //Doctrine EntityManager
    public $em;

    function __construct() {
        parent::__construct();

        //Instantiate a Doctrine Entity Manager 
        $this->em = $this->doctrine->em;
    }

    function index() {
        echo 'Doctrine: Atualizar estrutura do banco de dados.<br /><br />
		<form action="" method="POST">
		Inserir Dados<input type="checkbox" name="dados" value="1"><br /><br />
		<input type="submit" name="action" value="Atualizar Banco"><br /><br />
                </form>';
        
        if ($this->input->post('action')) {
            try {
                $tool = new \Doctrine\ORM\Tools\SchemaTool($this->em);
                
                $classes = array(
                    $this->em->getClassMetadata('models\entidades\Cliente'),
                    $this->em->getClassMetadata('models\entidades\Endereco'),
                    $this->em->getClassMetadata('models\entidades\Estado'),
                    $this->em->getClassMetadata('models\entidades\Cidade')
                    
                );
                
                $tool->updateSchema($classes);
               
                if(isset($_POST['dados'])){
                    $this->InserirDadosIniciais();
                }

                echo "Pronto!";
            } catch (Exception $exception) {
                echo $exception->getMessage();
            }
        }
    }

    function InserirDadosIniciais()
    {
        $esv = new \models\entidades\Programa();
        $esv->setNome("Escola Social do Varejo");
        $esv->setSigla("ESV");
        $this->em->Persist($esv);
        
        $cdd = new \models\entidades\Programa();
        $cdd->setNome("Com.Dominio Digital");
        $cdd->setSigla("CDD");
        $this->em->Persist($cdd);

        $this->em->Flush();         
    }
}